package com.hzz.mall.seckill.scheduled;

import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Slf4j
@Component
//@EnableScheduling   // 2.开启定时任务
//@EnableAsync
public class TestScheduled {

    /**
     *  spring中6位组成不允许第7位年  周一到周日 1-7
     *
     *  定时任务不应该是阻塞的，默认是阻塞的：解决方法
     *  1.可以让业务异步执行，提交到线程池中
     *    completableFuture.runAsync() executor异步执行方法
     *  2.支持定时任务线程池（不常用） TaskSchedulingProperties
     *
     *  3.让定时任务异步执行  (解决定时任务不阻塞)
     *     1.异步任务: 方法上@Async 类上@EnableAsync
     *     2.自动配置类 TaskExecutionAutoConfiguration属性绑定在TaskExecutionProperties
     */
//    @Async
//    @Scheduled(cron = "* * * ? * 2")
//    public void hello() throws InterruptedException {
//       log.info("hello");
//       Thread.sleep(3000);
//    }

}
